package com.mrogrape.system;

import java.awt.GraphicsEnvironment;
import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.SortedMap;
import java.util.Map.Entry;

public class Environment {

	/**
	 * 获取本地系统支持的全部字符集。
	 * 
	 * @return 本地系统支持的全部字符集。
	 */
	public static String[] availableCharsets(){

		if(Environment.availableCharsets == null){
			SortedMap<String, Charset> all = Charset.availableCharsets();
			Environment.availableCharsets = new String[all.size()];

			Iterator<Entry<String, Charset>> it = all.entrySet().iterator();

			int i = 0;
			while(it.hasNext()){
				Environment.availableCharsets[i] = it.next().getValue().toString();
				i++;
			}
		}

		return Environment.availableCharsets;
	}

	private static String[] availableCharsets = null;

	/**
	 * 获取系统支持的全部字体名，这包括家族名和具体的字体名。
	 * 
	 * @return 系统支持的全部字体名
	 */
	public static String[] availableFontFamilyNames(){
		if(Environment.availableFontFamilyNames == null){
			Environment.availableFontFamilyNames = GraphicsEnvironment
			.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
		}

		return Environment.availableFontFamilyNames;
	}

	private static String[] availableFontFamilyNames = null;

}
